#include <io.h> требуется только для объявления функции
int access(pathname, mode);
char *pathname; path-имя файла или директория
int mode; разрешенный доступ
Описание.
Для файлов функция access определяет, существует или нет определенный файл, может ли он быть доступен в заданном режиме mode. Возможные значения mode и их обозначения в вызовах access приведены ниже.
ЗНАЧЕНИЕ СМЫСЛ ЗНАЧЕНИЯ 06 Проверка на доступ по чтению и записи 04 Проверка на доступ по чтения 02 Проверка на доступ по записи 00 Проверка только на существование
В MS DOS все существующие файлы имеют доступ по чтению, поэтому режимы 00 и 04 вырабатывают один и тот же результат. Аналогично, режимы 06 и 02 являются эквивалентными, поскольку в MS DOS доступ по записи предполагает доступ по чтению. Для директориев access определяет, существуют или нет заданные директории; под управлением MS DOS все директории имеют доступ по чтению и записи.
Возвращаемое значение.
Функция access возвращает значение 0, если файл имеет заданный режим mode. Возвращаемое значение -1 свидетельствует о том, что названный файл не существует или недоступен в заданном mode, и errno устанавливается в одно из следующих значений:
ЗНАЧЕНИЕ СМЫСЛ ЗНАЧЕНИЯ EACCES Доступ запрещен; установленный статус для файла не допускает заданного доступа ENOENT Файл или path-имя не найдено
Пример:
#include <io.h>
#include <fcntl.h>
int fh;
.
.
.
/* проверка доступа по записи */
if ((access("data",2))==-1
{
perror("data file not writable");
exit(1);
}
else
fh=open("data", O_WRONLY);